Programmable logic devices have received wide acceptance in the automated data processing industry due primarily to the flexibility afforded the engineer in utilizing a single device to fulfill a variety of requirements. This is accomplished by the use of a programmable data path structure in which the engineer "blows" fusible links to isolate certain data paths leaving the selected data paths operable.
A wide variety of these devices is available with variations in their design and application to various requirements. However, they do have the feature in common that they will use a single logic operation circuit with a multitude of data paths connected to that single circuit. In programming one selects the data path output or input to the device required in an application and intentionally blows the fuse or "programs" the device so that the proper data path is then selected. See the article entitled "Field Programmable Logic Devices" by T. L. Larson and C. Downing, Electronic Engineering, January 1980, pp 37, for further background.
Although there is currently a variety available, one still must select a programmable device having the proper input and output configuration such as buffer, register, or latch, for his particular requirement. Furthermore, it is only by the selection of data paths internal to the programmable device that the data may be directed such that the logic function is properly performed.
An alternative to data path programming is data input programming using fusible links to permanently determine an input signal condition in a high or low state. An example of this type of programming option is shown in the Texas Instruments Incorporated, 1981 Supplement to the TTL Data Book, at page 316. The circuitry at connections 9, 10, and 11, and at 14, 15, and 16, on that page, operate as exclusive OR gates with one input selectable to operate either in a high state, or low state after programming, for the purpose of changing the operation of the OR gate. The OR gate circuitry is, however, unaffected. The actual data is programmed in this alternative, and thus, the application of this technique is limited to those devices having very few inputs, usually two.
A further drawback is the requirement that a large number of data paths must be provided on the circuit even though they will not all be in use subsequent to programming of the device. As a consequence, a large surface area of the chip is dedicated to inoperable data lines on the device.
Accordingly, it is an object of the present invention to provide a programmable logic device having architecture selectable by the user.
A further object of the present invention is to provide a programmable logic device having a single data path wherein the logical operative function of the device is programmed.